﻿
Imports System.Data
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Bc

Partial Class reportes_reporteVentas
    Inherits System.Web.UI.Page

#Region "Instancias a las Capas de Entidad y Negocio"

    Dim objnegVendedor As New EVOLTA.Promocion.Bl.Bc.Rvendedor
    Dim objnegSeparacionVenta As New EVOLTA.Promocion.Bl.Bc.RseparacionVenta

#End Region

#Region "Variables Globales"
    Public dtbInformacion As New DataTable
#End Region

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.hdfFechaCierre.Value = Date.Now.ToShortDateString()

        If (Not Page.IsPostBack) And (Request.Params("__EVENTTARGET") Is Nothing) Then
            Me.Cargar_vendedores()

            ' Reinicializando controles
            Me.lblSubTitulo2.ForeColor = Drawing.Color.Red
            Me.lblSubTitulo3.Text = String.Empty
            Me.lnkBtnExportar.Enabled = False
        Else
            If Me.txtFechaIni.Text.Trim.Equals(String.Empty) Or Me.txtFechaFin.Text.Trim.Equals(String.Empty) Then
                Me.lblSubTitulo2.Text = String.Empty
                Me.lnkBtnExportar.Enabled = False
                Me.lblSubTitulo3.Text = "Para realizar una consulta debe de seleccionar un fecha de inicio y fecha de fin."
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Red
            Else
                Me.lnkBtnExportar.Enabled = True
                Me.lblSubTitulo2.ForeColor = Drawing.Color.Black
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Black

                Dim strSubtitulo2 As String = String.Empty
                Dim strSubtitulo3 As String = String.Empty

                If Me.ddlVendedor.SelectedItem.Value.ToString.Equals("%") Then
                    strSubtitulo2 = "Información correspondiente a TODOS los vendedores"
                Else
                    strSubtitulo2 = "Información correspondiente al vendedor " & Me.ddlVendedor.SelectedItem.Text & ""
                End If

                If Me.txtNombreCliente.Text.Trim.Equals(String.Empty) Then
                    strSubtitulo2 = strSubtitulo2 & " y a TODOS los clientes"
                Else
                    strSubtitulo2 = strSubtitulo2 & " y Filtrado por Nombre de Cliente: " & Me.txtNombreCliente.Text.Trim.ToUpper()
                End If

                strSubtitulo3 = "Información con Fecha de Inicio " & Me.txtFechaIni.Text & " y Fecha de Fin " & Me.txtFechaFin.Text

                Me.lblSubTitulo2.Text = strSubtitulo2
                Me.lblSubTitulo3.Text = strSubtitulo3

                Me.cargarInformacion()

                ViewState("vst_subtitulo_2") = Me.lblSubTitulo2.Text
                ViewState("vst_subtitulo_3") = Me.lblSubTitulo3.Text
            End If
        End If
    End Sub

    Private Sub Cargar_vendedores()
        Dim dtbVendedores As New DataTable
        dtbVendedores = objnegVendedor.negCargar_vendedores(Me.Master.descEmpresa.Trim)

        Me.ddlVendedor.DataSource = dtbVendedores
        Me.ddlVendedor.DataTextField = "Nombre"
        Me.ddlVendedor.DataValueField = "Id"
        Me.ddlVendedor.DataBind()
    End Sub

    Private Sub cargarInformacion()
        Dim strVendedorId As String = Me.ddlVendedor.SelectedItem.Value.ToString()
        Dim strFechaInicio As String = Me.txtFechaIni.Text
        Dim strFechaFin As String = Me.txtFechaFin.Text
        Dim strNombreCliente As String = Me.txtNombreCliente.Text.Trim()

        Me.dtbInformacion = objnegSeparacionVenta.negCargar_reporte_ventas(Me.Master.descEmpresa.Trim, Me.Master.idProyecto, Me.Master.idEtapa, strVendedorId, strFechaInicio, strFechaFin, strNombreCliente)

        If Me.dtbInformacion.Rows.Count > 0 Then
            Session("ssn_Exportar") = Me.dtbInformacion

            Me.rptReporteGlobal.DataSource = Me.dtbInformacion
            Me.rptReporteGlobal.DataBind()

            ' Líneas de código para hacer posible la exportación
            Dim dtbExportar As New DataTable
            dtbExportar.Columns.Add("Proyecto")
            dtbExportar.Columns.Add("Etapa")
            dtbExportar.Columns.Add("Torre")
            dtbExportar.Columns.Add("Tipo")
            dtbExportar.Columns.Add("Modelo")
            dtbExportar.Columns.Add("N° Inmueble")
            dtbExportar.Columns.Add("Area Ocupada")
            dtbExportar.Columns.Add("Estac / Mod 1")
            dtbExportar.Columns.Add("N° Est 1")
            dtbExportar.Columns.Add("Estac / Mod 2")
            dtbExportar.Columns.Add("N° Est 2")
            dtbExportar.Columns.Add("N° Dep 1")
            dtbExportar.Columns.Add("Nombre Cliente")
            dtbExportar.Columns.Add("DNI Cliente")
            dtbExportar.Columns.Add("Email")
            dtbExportar.Columns.Add("Telefono")
            dtbExportar.Columns.Add("Como se entero")

            dtbExportar.Columns.Add("Precio Dpto")
            dtbExportar.Columns.Add("Dcto Sala")
            dtbExportar.Columns.Add("Dcto Tipo Finan")
            dtbExportar.Columns.Add("Dcto Prog Esp")
            dtbExportar.Columns.Add("Dcto Cant Prop")
            dtbExportar.Columns.Add("Total Descuentos")
            dtbExportar.Columns.Add("Precio Vta Dep")
            dtbExportar.Columns.Add("Precio Estac 1")
            dtbExportar.Columns.Add("Precio Estac 2")
            dtbExportar.Columns.Add("Precio Deposito")
            dtbExportar.Columns.Add("TOTAL Venta")

            dtbExportar.Columns.Add("Pago Separacion")
            dtbExportar.Columns.Add("Fecha Pag Sep")
            dtbExportar.Columns.Add("Monto Cuota Inicial")
            dtbExportar.Columns.Add("Saldo Financiado")
            dtbExportar.Columns.Add("Monto Pagado")
            dtbExportar.Columns.Add("Porcentaje Pagado")
            dtbExportar.Columns.Add("Fecha Venta")
            dtbExportar.Columns.Add("Fecha Firma Minuta")
            dtbExportar.Columns.Add("Estado Pago")
            dtbExportar.Columns.Add("Tipo Financiamiento")
            dtbExportar.Columns.Add("Entidad Financiera")
            dtbExportar.Columns.Add("Observacion")
            dtbExportar.Columns.Add("Vendedor")
            dtbExportar.Columns.Add("ID Venta")

            Dim drwFila As DataRow

            For i As Integer = 0 To Me.dtbInformacion.Rows.Count - 1
                drwFila = dtbExportar.NewRow()
                drwFila("Proyecto") = Me.dtbInformacion.Rows(i)("Proyecto").ToString()
                drwFila("Etapa") = Me.dtbInformacion.Rows(i)("Etapa").ToString()
                drwFila("Torre") = Me.dtbInformacion.Rows(i)("Torre").ToString()
                drwFila("Tipo") = Me.dtbInformacion.Rows(i)("Tipo").ToString()
                drwFila("Modelo") = Me.dtbInformacion.Rows(i)("Modelo").ToString()
                drwFila("N° Inmueble") = Me.dtbInformacion.Rows(i)("NroInmueble").ToString()
                drwFila("Area Ocupada") = Me.dtbInformacion.Rows(i)("Area Ocupada").ToString()
                drwFila("Estac / Mod 1") = Me.dtbInformacion.Rows(i)("Estac / Mod 1").ToString()
                drwFila("N° Est 1") = Me.dtbInformacion.Rows(i)("N° Est 1").ToString()
                drwFila("Estac / Mod 2") = Me.dtbInformacion.Rows(i)("Estac / Mod 2").ToString()
                drwFila("N° Est 2") = Me.dtbInformacion.Rows(i)("N° Est 2").ToString()
                drwFila("N° Dep 1") = Me.dtbInformacion.Rows(i)("N° Dep 1").ToString()
                drwFila("Nombre Cliente") = Me.dtbInformacion.Rows(i)("Nombre Cliente").ToString()
                drwFila("DNI Cliente") = Me.dtbInformacion.Rows(i)("DNI Cliente").ToString()
                drwFila("Email") = Me.dtbInformacion.Rows(i)("Email").ToString()
                drwFila("Telefono") = Me.dtbInformacion.Rows(i)("Telefono").ToString()
                drwFila("Como se entero") = Me.dtbInformacion.Rows(i)("ComoSeEntero").ToString()

                drwFila("Precio Dpto") = Format(CType(Me.dtbInformacion.Rows(i)("Precio Dpto").ToString(), Double), "#,##0.00")
                drwFila("Dcto Sala") = Format(CType(Me.dtbInformacion.Rows(i)("Desc Sala").ToString(), Double), "#,##0.00")
                drwFila("Dcto Tipo Finan") = Format(CType(Me.dtbInformacion.Rows(i)("Desc Tip Finan").ToString(), Double), "#,##0.00")
                drwFila("Dcto Prog Esp") = Format(CType(Me.dtbInformacion.Rows(i)("Desc Prog Esp").ToString(), Double), "#,##0.00")
                drwFila("Dcto Cant Prop") = Format(CType(Me.dtbInformacion.Rows(i)("Desc Cant Prop").ToString(), Double), "#,##0.00")
                drwFila("Total Descuentos") = Format(CType(Me.dtbInformacion.Rows(i)("Total Descuentos").ToString(), Double), "#,##0.00")
                drwFila("Precio Vta Dep") = Format(CType(Me.dtbInformacion.Rows(i)("Precio Vta Dep").ToString(), Double), "#,##0.00")
                drwFila("Precio Estac 1") = Format(CType(Me.dtbInformacion.Rows(i)("Precio Estac 1").ToString(), Double), "#,##0.00")
                drwFila("Precio Estac 2") = Format(CType(Me.dtbInformacion.Rows(i)("Precio Estac 2").ToString(), Double), "#,##0.00")
                drwFila("Precio Deposito") = Format(CType(Me.dtbInformacion.Rows(i)("Precio Deposito").ToString(), Double), "#,##0.00")
                drwFila("TOTAL Venta") = Format(CType(Me.dtbInformacion.Rows(i)("TOTAL Venta").ToString(), Double), "#,##0.00")

                drwFila("Pago Separacion") = Format(CType(Me.dtbInformacion.Rows(i)("Pago Separacion").ToString(), Double), "#,##0.00")
                drwFila("Fecha Pag Sep") = Me.dtbInformacion.Rows(i)("Fecha Pag Sep").ToString()
                drwFila("Monto Cuota Inicial") = Format(CType(Me.dtbInformacion.Rows(i)("Monto Cuota Inicial").ToString(), Double), "#,##0.00")
                drwFila("Saldo Financiado") = Format(CType(Me.dtbInformacion.Rows(i)("Saldo Financiar").ToString(), Double), "#,##0.00")
                'drwFila("Monto Pagado") = Format(CType(Me.dtbInformacion.Rows(i)("Monto Pagado").ToString(), Double), "#,##0.00")
                'drwFila("Porcentaje Pagado") = Format(CType(Me.dtbInformacion.Rows(i)("Porcentaje Pagado").ToString(), Double), "#,##0.00")
                drwFila("Fecha Venta") = Me.dtbInformacion.Rows(i)("Fecha Venta").ToString()
                drwFila("Fecha Firma Minuta") = Me.dtbInformacion.Rows(i)("Fecha Firma Minuta").ToString()
                drwFila("Estado Pago") = Me.dtbInformacion.Rows(i)("Estado Pago").ToString()
                drwFila("Tipo Financiamiento") = Me.dtbInformacion.Rows(i)("Tipo Financiamiento").ToString()
                drwFila("Entidad Financiera") = Me.dtbInformacion.Rows(i)("Entidad Financiera").ToString()
                drwFila("Observacion") = Me.dtbInformacion.Rows(i)("Observacion").ToString()
                drwFila("Vendedor") = Me.dtbInformacion.Rows(i)("Vendedor").ToString()
                drwFila("ID Venta") = Me.dtbInformacion.Rows(i)("ID Venta").ToString()
                dtbExportar.Rows.Add(drwFila)
            Next

            Session("ssn_Exportar") = dtbExportar
        End If
    End Sub

    Protected Sub lnkBtnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkBtnExportar.Click
        Dim strNombreArchivo As String = "Reporte de Ventas - " & System.Globalization.CultureInfo.CurrentUICulture.TextInfo.ToTitleCase(Me.Master.descEmpresa.Trim) & "_" & Microsoft.VisualBasic.Right("0" & Date.Now.Day.ToString(), 2) & Microsoft.VisualBasic.Right("0" & Date.Now.Month.ToString(), 2) & Date.Now.Year.ToString()
        Dim strTituloHoja As String = "REPORTE DE VENTAS - " & Me.Master.descEmpresa.Trim.ToUpper()
        Dim strSubTituloHoja As String = ViewState("vst_subtitulo_2").ToString()

        Dim dtbInformacion As New DataTable

        dtbInformacion = Session("ssn_Exportar")

        If dtbInformacion.Rows.Count > 0 Then
            'dtbInformacion.Columns.RemoveAt(0)
            'dtbInformacion.Columns.RemoveAt(0)

            '' Cambio de nombre de columnas para una buena exportación
            'dtbInformacion.Columns("Deposito").ColumnName = "Depósito"
            'dtbInformacion.Columns("Estacionamiento").ColumnName = "Estac."
            'dtbInformacion.Columns("Departamento").ColumnName = "Dpto"
            'dtbInformacion.Columns("Dias").ColumnName = "Días"
            'dtbInformacion.Columns("Prox Vcmto Semanas").ColumnName = "Próx. Vcmto Semanas"
            'dtbInformacion.Columns("Morosidad Mes").ColumnName = "Morosidad (Mes)"
            'dtbInformacion.Columns("Morosidad Dias").ColumnName = "Morosidad (Días)"
            'dtbInformacion.Columns("Proy").ColumnName = "Proy."
            'dtbInformacion.Columns("Nro Operacion").ColumnName = "N° Operación"

            'Dim dtbExportar As New DataTable
            'Dim drwFila As DataRow

            'For i As Integer = 0 To dtbInformacion.Columns.Count - 1
            '    dtbExportar.Columns.Add(dtbInformacion.Columns(i).ColumnName)
            'Next

            'Dim strNombreCliente As String = dtbInformacion.Rows(0)("Nombre").ToString.Trim()
            'Dim strDepartamento As String = dtbInformacion.Rows(0)("Dpto").ToString.Trim()

            'For i As Integer = 0 To dtbInformacion.Rows.Count - 1
            '    If strNombreCliente.Equals(dtbInformacion.Rows(i)("Nombre").ToString.Trim()) AndAlso _
            '        strDepartamento.Equals(dtbInformacion.Rows(i)("Dpto").ToString.Trim()) Then

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = dtbInformacion.Rows(i)(k).ToString()
            '        Next

            '        dtbExportar.Rows.Add(drwFila)
            '    Else
            '        strNombreCliente = dtbInformacion.Rows(i)("Nombre").ToString.Trim()
            '        strDepartamento = dtbInformacion.Rows(i)("Dpto").ToString.Trim()

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = ""
            '        Next

            '        dtbExportar.Rows.Add(drwFila)

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = dtbInformacion.Rows(i)(k).ToString()
            '        Next

            '        dtbExportar.Rows.Add(drwFila)
            '    End If
            'Next

            Dim objInfraestructura As New Infraestructura
            Dim strOpcionalCabecera As String = String.Empty

            Dim strSubtitulo3 As String = ViewState("vst_subtitulo_3").ToString()

            strOpcionalCabecera = "<tr><th colspan=""" & dtbInformacion.Columns.Count & """>" & strSubtitulo3 & "</th></tr>"
            objInfraestructura.Exportar_a_excel(strNombreArchivo, strTituloHoja, strSubTituloHoja, dtbInformacion, Nothing, strOpcionalCabecera)
        End If
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Me.ModalPopupExtender.Hide()
    End Sub

End Class